1. Field of the Invention
The present invention relates to computer software, and more particularly to a method and system for automatically establishing software documentation.
2. Description of Related Art
In modern computer systems, software documentation is generally static. The developer of a given software application will develop a fixed set of documentation that describes how to use various features of the software, and the developer will distribute that documentation together with, or as part of, the software. As required, users may refer to the fixed documentation to determine how the software operates.
Software documentation can take various forms, such as a printed manual or an electronic, software based help system. Typically, the documentation is divided into sections or “help topic descriptions,” each explaining a particular aspect of the software. In an electronic help system, for instance, each help topic description might be set forth in a respective data record or data file, and hyperlinks and/or an electronic index system might allow a user to navigate through the topics.
A software developer will usually design software such that, when the software is installed on a computer, the help topic descriptions for the software will be loaded onto the computer as well. In this regard, a given software application might be made up of a number of selectively-installable modules, and the software developer might prepare corresponding help topic descriptions for each module. When certain modules of the software are installed, the help topic descriptions for those modules will then be loaded onto the computer, so that a user interacting with the software can access those help topic descriptions as desired.
In use, most software can be configured to operate in a number of different ways, so as to accommodate user (administrator or end-user) preferences, for instance. In this regard, a given software application (or module) may have a set of configuration parameters (effectively state variables), each of which a user may set to a desired state through use of a setup or options panel, for instance, so as to cause the software to operate in a desired manner.
Static software documentation, however, does not dynamically take into account the state of configuration parameters. Rather, at best, static software documentation may describe the possible states of the parameters as well as the implications of setting a given parameter to a given state. Thus, a system that provides for software documentation that dynamically tracks software configurations is needed.